package com.ruoyi.compensationManagement.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.compensationManagement.domain.CompensationDeductionAmountSettings;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author Yuan
 * @description
 * @date 2022/10/12 21:37
 */
public class SalaryFileVo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 姓名
     */
    @Excel(name = "姓名", width = 20, needMerge = true)
    private String nickName;

    /**
     * 工号
     */
    @Excel(name = "工号", width = 20, needMerge = true)
    private String jobnumber;

    /**
     * 部门
     */
    @Excel(name = "部门", width = 20, needMerge = true)
    private String deptName;

    @Excel(name = "员工状态", width = 20, needMerge = true)
    private String employeeStatus;

    /**
     * 工资年月
     */
    @JsonFormat(pattern = "yyyy-MM")
    @Excel(name = "工资年月", width = 30, dateFormat = "yyyy-MM", needMerge = true)
    private Date salaryyearmonth;

    /**
     * 入职时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "入职时间", width = 20,  dateFormat = "yyyy-MM-dd",needMerge = true)
    private Date entryTime;

    /**
     * 预计转正时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "转正时间", width = 20, dateFormat = "yyyy-MM-dd", needMerge = true)
    private Date employmentConfirmationTime;

    /**
     * 工资基数合计
     */
    @Excel(name = "工资基数合计", width = 20, needMerge = true)
    private BigDecimal totalWageBase;

    /**
     * 岗位工资
     */
    @Excel(name = "岗位工资", width = 20, needMerge = true)
    private BigDecimal positionSalary;

    /**
     * 薪级工资
     */
    @Excel(name = "薪级工资", width = 20, needMerge = true)
    private BigDecimal payWages;

    /**
     * 基础性绩效工资
     */
    @Excel(name = "基础性绩效工资", width = 20, needMerge = true)
    private BigDecimal basicPerformancePay;

    /**
     * 奖励性绩效工资
     */
    @Excel(name = "奖励性绩效工资", width = 20, needMerge = true)
    private BigDecimal incentivizedPerformancePay;

    /**
     * 基础性绩效奖
     */
    @Excel(name = "基础性绩效奖", width = 20, needMerge = true)
    private BigDecimal basicPerformanceAward;

    /**
     * 独生子女保健
     */
    @Excel(name = "独生子女保健", width = 20, needMerge = true)
    private BigDecimal oneChildCare;

    /**
     * 住房补贴
     */
    @Excel(name = "住房补贴", width = 20, needMerge = true)
    private BigDecimal housingSubsidies;

    /**
     * 扣款金额合计
     */
    @Excel(name = "扣款金额合计", width = 20, needMerge = true)
    private BigDecimal totalAmountOfDeduction;

    private String deductionsPart;

    @Excel(name = "扣款部分", needMerge = false)
    private List<CompensationDeductionAmountSettings> compensationDeductionAmountSettingsList;

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getJobnumber() {
        return jobnumber;
    }

    public void setJobnumber(String jobnumber) {
        this.jobnumber = jobnumber;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getEmployeeStatus() {
        return employeeStatus;
    }

    public void setEmployeeStatus(String employeeStatus) {
        this.employeeStatus = employeeStatus;
    }

    public Date getSalaryyearmonth() {
        return salaryyearmonth;
    }

    public void setSalaryyearmonth(Date salaryyearmonth) {
        this.salaryyearmonth = salaryyearmonth;
    }

    public Date getEntryTime() {
        return entryTime;
    }

    public void setEntryTime(Date entryTime) {
        this.entryTime = entryTime;
    }

    public Date getEmploymentConfirmationTime() {
        return employmentConfirmationTime;
    }

    public void setEmploymentConfirmationTime(Date employmentConfirmationTime) {
        this.employmentConfirmationTime = employmentConfirmationTime;
    }

    public BigDecimal getTotalWageBase() {
        return totalWageBase;
    }

    public void setTotalWageBase(BigDecimal totalWageBase) {
        this.totalWageBase = totalWageBase;
    }

    public BigDecimal getPositionSalary() {
        return positionSalary;
    }

    public void setPositionSalary(BigDecimal positionSalary) {
        this.positionSalary = positionSalary;
    }

    public BigDecimal getPayWages() {
        return payWages;
    }

    public void setPayWages(BigDecimal payWages) {
        this.payWages = payWages;
    }

    public BigDecimal getBasicPerformancePay() {
        return basicPerformancePay;
    }

    public void setBasicPerformancePay(BigDecimal basicPerformancePay) {
        this.basicPerformancePay = basicPerformancePay;
    }

    public BigDecimal getIncentivizedPerformancePay() {
        return incentivizedPerformancePay;
    }

    public void setIncentivizedPerformancePay(BigDecimal incentivizedPerformancePay) {
        this.incentivizedPerformancePay = incentivizedPerformancePay;
    }

    public BigDecimal getBasicPerformanceAward() {
        return basicPerformanceAward;
    }

    public void setBasicPerformanceAward(BigDecimal basicPerformanceAward) {
        this.basicPerformanceAward = basicPerformanceAward;
    }

    public BigDecimal getOneChildCare() {
        return oneChildCare;
    }

    public void setOneChildCare(BigDecimal oneChildCare) {
        this.oneChildCare = oneChildCare;
    }

    public BigDecimal getHousingSubsidies() {
        return housingSubsidies;
    }

    public void setHousingSubsidies(BigDecimal housingSubsidies) {
        this.housingSubsidies = housingSubsidies;
    }

    public BigDecimal getTotalAmountOfDeduction() {
        return totalAmountOfDeduction;
    }

    public void setTotalAmountOfDeduction(BigDecimal totalAmountOfDeduction) {
        this.totalAmountOfDeduction = totalAmountOfDeduction;
    }

    public List<CompensationDeductionAmountSettings> getCompensationDeductionAmountSettingsList() {
        return compensationDeductionAmountSettingsList;
    }

    public void setCompensationDeductionAmountSettingsList(List<CompensationDeductionAmountSettings> compensationDeductionAmountSettingsList) {
        this.compensationDeductionAmountSettingsList = compensationDeductionAmountSettingsList;
    }

    public String getDeductionsPart() {
        return deductionsPart;
    }

    public void setDeductionsPart(String deductionsPart) {
        this.deductionsPart = deductionsPart;
    }

    @Override
    public String toString() {
        return "SalaryFileVo{" +
                "nickName='" + nickName + '\'' +
                ", jobnumber='" + jobnumber + '\'' +
                ", deptName='" + deptName + '\'' +
                ", employeeStatus='" + employeeStatus + '\'' +
                ", salaryyearmonth=" + salaryyearmonth +
                ", entryTime=" + entryTime +
                ", employmentConfirmationTime=" + employmentConfirmationTime +
                ", totalWageBase=" + totalWageBase +
                ", positionSalary=" + positionSalary +
                ", payWages=" + payWages +
                ", basicPerformancePay=" + basicPerformancePay +
                ", incentivizedPerformancePay=" + incentivizedPerformancePay +
                ", basicPerformanceAward=" + basicPerformanceAward +
                ", oneChildCare=" + oneChildCare +
                ", housingSubsidies=" + housingSubsidies +
                ", totalAmountOfDeduction=" + totalAmountOfDeduction +
                ", compensationDeductionAmountSettingsList=" + compensationDeductionAmountSettingsList +
                ", deductionsPart=" + deductionsPart +
                '}';
    }
}

